/// 排序字段：时间或名称。
/// - `time`：按时间（`modifiedMs` 或派生的 `year/month/day`）排序；
/// - `name`：按文件名排序。
enum SortBy { time, name }

/// 排序方向：升序或降序。
/// - `asc`：升序；
/// - `desc`：降序。
enum SortDirection { asc, desc }

/// 列表查询通用选项。
///
/// 为日志文件查询提供统一的排序与分页能力：
/// - [ListOptions.by]：排序字段（时间或名称）；
/// - [ListOptions.direction]：排序方向（升序/降序）；
/// - [ListOptions.pageSize]：分页大小（可选，省略则不分页）；
/// - [ListOptions.page]：页码（从 1 开始，仅在设置了 `pageSize` 时生效）。
class ListOptions {
  final SortBy by;
  final SortDirection direction;
  final int? pageSize;
  final int page;

  const ListOptions({
    this.by = SortBy.time,
    this.direction = SortDirection.desc,
    this.pageSize,
    this.page = 1,
  });
}
